package com.ruoyi.workbench.service;

import com.ruoyi.workbench.domain.WbVisitLog;
import com.ruoyi.workbench.domain.WbWholeUnitVisitLogNew;
import com.ruoyi.workbench.domain.WbWholeVisitLog;

import java.util.List;

/**
 * 拜访日志Service接口
 *
 * @author hanjiafeng
 * @date 2021-02-25
 */
public interface IWbVisitLogService {
    /**
     * 查询拜访日志
     *
     * @param id 拜访日志ID
     * @return 信息上报
     */
    WbVisitLog selectWbVisitLogById(Long id);

    /**
     * 查询拜访日志
     *
     * @param id 拜访日志ID
     * @return 信息上报
     */
    WbWholeVisitLog selectWbWholeVisitLogById(Long id);

    /**
     * 查询拜访日志列表
     *
     * @param wbVisitLog 信息上报
     * @return 拜访日志集合
     */
    List<WbVisitLog> selectWbVisitLogList(WbVisitLog wbVisitLog);

    /**
     * 查询完全拜访日志
     *
     * @param wbWholeVisitLog wbWholeVisitLog
     * @return 拜访日志集合
     */
    List<WbWholeVisitLog> selectWbWholeVisitLogList(WbWholeVisitLog wbWholeVisitLog);

    /**
     * 新增拜访日志
     *
     * @param wbVisitLog 信息上报
     * @return 结果
     */
    int insertWbVisitLog(WbVisitLog wbVisitLog);

    /**
     * 修改拜访日志
     *
     * @param wbVisitLog 信息上报
     * @return 结果
     */
    int updateWbVisitLog(WbVisitLog wbVisitLog);

    /**
     * 批量删除拜访日志
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    int deleteWbVisitLogByIds(String ids);

    /**
     * 删除拜访日志信息
     *
     * @param id 拜访日志ID
     * @return 结果
     */
    int deleteWbVisitLogById(Long id);

    /**
     * 查询包含全部部门的日志
     *
     * @param wbWholeUnitVisitLogNew wbWholeUnitVisitLogNew
     * @return 列表
     */
    List<WbWholeUnitVisitLogNew> selectWbWholeUnitVisitLogNewList(WbWholeUnitVisitLogNew wbWholeUnitVisitLogNew);

    /**
     * 查询包括时间的日志
     *
     * @param wbWholeUnitVisitLogNew wbWholeUnitVisitLogNew
     * @param period                 period
     * @param startTime              startTime
     * @param endTime                endTime
     * @param types                  包含类型
     * @return 列表
     */
    List<WbWholeUnitVisitLogNew> selectWbWholeUnitVisitLogNewListDuringTime(WbWholeUnitVisitLogNew wbWholeUnitVisitLogNew, Integer period, String startTime, String endTime, String... types);

    /**
     * 检查号码是否已经在currentPhoneNumber或者transformedPhone中存在
     *
     * @param id          记录id
     * @param type        类型,0:只查currentPhoneNumber,1:currentPhoneNumber和transformedPhone都查
     * @param phoneNumber 待查号码
     * @return 是否存在
     */
    String checkPhoneNumberUnique(Long id, String type, String phoneNumber);
}
